<?php
/**
 * 管理中心· 图片上传模块的逻辑处理
 * ============================================================================
 * 版权所有 2017-2020 北京优特世纪科技有限公司，并保留所有权利。
 * 网站地址: http://www.unitewww.com;
 * ============================================================================
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * @since: 1.0
 * @version: 1.0
 **/
namespace Home\Controller;
use Think\Upload;
use Think\Controller;
class UploaderController extends Controller {
    /**
     +--------------------------------------------------------------------------
     * 实现单图片上传的功能
     * @author:  XC跃
     * @date :2018-09-30
     +--------------------------------------------------------------------------
     */
    public function setupFile(){
        //接收值
        $file = I('post.fid');
        $path = I('post.path');
        //echo $file;die;
        if (!empty($_FILES)) {
            $upload = new \Think\Upload();// 实例化上传类
            $upload->maxSize  = 0 ;// 设置附件上传大小
            $upload->exts     = array('jpg', 'gif', 'png', 'jpeg','zip','htm');// 设置附件上传类型
            $upload->rootPath = './Public/Uploads/'; // 设置附件上传根目录
            $upload->subName  = array('','');
            $upload->savePath = $path; // 设置附件上传（子）目录
            // 上传文件
            $info = $upload->upload();
            if(!$info) {// 上传错误提示错误信息
                $mes = $upload->getError();
                $res = array('status'=>-1,'info'=>$mes);
            }else{// 上传成功
                //var_dump($info);
                $url = $info[$file]['savepath'].$info[$file]['savename'];
                //返回文件地址和名给JS作回调用
                $res = array('status'=>1,'info'=>'上传成功','url'=>$url);
            }
            exit(json_encode($res));
        }
    }
    /**
     +--------------------------------------------------------------------------
     * 实现多图上传的功能
     * @author:  XC跃
     * @date :2018-09-30
     +--------------------------------------------------------------------------
     */
    public function uploading(){        
        if (!empty($_FILES)) {
            $upload = new \Think\Upload();// 实例化上传类
            $upload->maxSize  = 3145728 ;// 设置附件上传大小
            $upload->exts     = array('jpg', 'gif', 'png', 'jpeg','zip','htm');// 设置附件上传类型
            $upload->rootPath = './Public/Uploads/'; // 设置附件上传根目录
            $upload->subName  = array('','');
            $upload->savePath = 'shopImg'; // 设置附件上传（子）目录
            // 上传文件
            $info = $upload->upload();
            
            if($info){
                $res['name'] = $info['file']['savename'];
                $res['filepath'] = $info['file']['savepath'].$info['file']['savename'];
            }else{
                $res['code'] = 0;
                $res['msg'] = '上传失败！'.$upload->getError();
            }
            $this->ajaxReturn($res);
        }
    }
    
    /**
     +--------------------------------------------------------------------------
     * 实现图片截取的功能
     * @param $path  文件的路径
     * @param $width 图片的宽度
     * @param $hight 图片的高度
     * @param $type  1等比例缩放 2缩放后填充 3居中裁剪 4左上角裁剪 5右下角裁剪 6固定尺寸缩放
     * @Date: 2017-04-24
     +--------------------------------------------------------------------------
     */
    public function truncate($url,$width,$hight,$type='1'){
        $image = new \Think\Image();
        $path = "./Public/Uploads/".$url;
        //将图片裁剪为400x400并替换原图片
        $image->open($path)->thumb($width, $hight,$type)->save($path);
    }
    /**
     +--------------------------------------------------------------------------
     * 实现图片添加水印的功能
     * @param $path  文件的路径
     * @param $width 图片的宽度
     * @param $hight 图片的高度
     * @param $type  1顶部居左 2顶部居中 3顶部居右 4左边居中 5图片中心 6右边居中 7底部居左 8底部居中 9底部居右
     * @Date: 2017-04-24
     +--------------------------------------------------------------------------
     */
//     public function watermark($url,$type='1'){
//         $logo=get_setup("`se_type`='sShui'");
//         $image = new \Think\Image();
//         $path = "./Public/Uploads/".$url;
//         //可以和裁剪写为一体 后台控制是否开启水印
//         // 给原图添加水印并保存
//         $image->open($path)->water('./Public/Uploads/'.$logo['sShui_syimg'],$type)->save($path);
//     }
    /**
    +--------------------------------------------------------------------------
     * 实现效果图集的上传的功能
     * @author:  XC跃
     * @date :2018-03-13
    +--------------------------------------------------------------------------
     */
    function uploadImg() {
        //接收值
        $file = trim(I('get.id'));
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize  = 3145728 ;// 设置附件上传大小
        $upload->exts     = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = './Public/Uploads/'; // 设置附件上传根目录
        $upload->subName  = array('','');
        $upload->savePath = $file; // 设置附件上传（子）目录
        $info = $upload->upload();
        if(!$info) {// 上传错误提示错误信息
            $this->error($upload->getError());
        }
        $url = $info['Filedata']['savepath'].$info['Filedata']['savename'];
//        $water=get_setup("`se_type`='sShui'");
//        $this->truncate($url,$water['sShui_tujie'],$water['sShui_tujie'],$water['sShui_tjian']);
//        if($water['sShui_systa']==1){//是否开启水印
//            $this->watermark($url,$water['sShui_sywei']);
//        }
        echo '/Public/Uploads/'.$info['Filedata']['savepath'].$info['Filedata']['savename'];
    }
    /**
     +--------------------------------------------------------------------------
     * 实现效果图集删除的功能
     * @author:XC跃
     * @date :2017-04-11
     +--------------------------------------------------------------------------
     */
    function del() {
        $src='.'.$_GET['src'];
        echo $src;
        if (file_exists($src)){
            unlink($src);
        }
        print_r($_GET['src']);
        exit();
    }
}